package cn.ac.registAService.commons.util;

import java.io.File;
import java.io.UnsupportedEncodingException;

/**
 * @author yangzhong E-mail: zyang@ceode.ac.cn
 * @version 1.0
 * @date 2012-10-16 下午4:26:19
 * @fuction help for reading path of system's configuration files
 */

public class ConfigReader {

	private static String FS = File.separator;
	// 项目路径
	private static String strSystemPath = System.getProperty("user.dir");

	// ---------------------------------------------------------Public Methods

	/**
	 * 获取系统路径
	 * @return 系统目录路径
	 */
	public static String getSystemPath() {
		return strSystemPath;
	}

	/**
	 * 获取Tomcat Home目录,如D:\java\apache-tomcat-7.0.28
	 * @return Tomcat
	 */
	public static String getTomcatHome() {
		File cFile = new File(strSystemPath);
		return cFile.getParent();
	}

	/**
	 * 获取项目类所在根路径，如D:\java\apache-tomcat-7.0.28\webapps\RegistServiceSystem\WEB-INF\classes\
	 * @return
	 */
	public static String getClassesPath() {
		String classPath = ConfigReader.class.getResource("/").getPath().substring(1);
		try {
			// getResource方法使用了utf-8对路径信息进行了编码，当路径中存在中文和空格时，他会对这些字符进行转换，这样，得到的往往不是我们想要的真实路径，
			// 在此，调用了URLDecoder的decode方法进行解码，以便得到原始的中文及空格路径。
			classPath = java.net.URLDecoder.decode(classPath, "utf-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		// windows 下
		if ("\\".equals(FS)) 
			classPath = classPath.replace("/", "\\");
		// linux 下
		if ("/".equals(FS)) 
			classPath = classPath.replace("\\", "/");
		
		return classPath;
	}

	/**
	 * 获取系统配置文件“registServiceConf.prop”路径
	 * @return 系统配置文件路径
	 */
	public static String getConfPath() {
		String strConfPath = getClassesPath() + "registServiceConf.prop";
		return strConfPath;
	}

	/**
	 * 获取系统csw模版路径
	 * @return
	 */
	public static String getCswTemplete() {
		String cswTempletePath = getClassesPath() + "cswTemplete";
		return cswTempletePath;
	}


	public static void main(String[] args) {
		System.out.println("classes路径：" + ConfigReader.getClassesPath());
	}

}
